home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok19
/
patterns
/
hipattern.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
4KB
|
169 lines
(*---------------------------------------------------------------------------
:Program. HiPattern.mod
:Contents. Definiert und setzt Füllmuster für 1:2-Graphik
:Contents (Hires-normal)
:Author. Bernd Preusing
:Address. Gerhardstr. 16 D-2200 Elmshorn
:Phone. 04121/22486
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.2e
:History. V1.0 1-May-89 Preusing
:Bugs. none
---------------------------------------------------------------------------*)
IMPLEMENTATION MODULE HiPattern;
FROM SYSTEM IMPORT ADR, ADDRESS, INLINE;
FROM Graphics IMPORT RastPortPtr;
(* from .def:
TYPE
Pattern =
(full, wideLD, narrowLD, wideRD, narrowRD, wideR, narrowR, wideD, narrowD,
wideCross, narrowCross, half, quart, eight, wideCheck, narrowCheck,
bigDot, smallDot, wave, crossWave, bricks);
*)
(* Pattern-Daten: *)
PROCEDURE WideRO;(* $E- *)
BEGIN INLINE(
00003H, 0000CH, 00030H, 000C0H, 00300H, 00C00H, 03000H, 0C000H)
END WideRO;
PROCEDURE NarrowRO;(* $E- *)
BEGIN INLINE(
03030H, 0C0C0H, 00303H, 00C0CH)
END NarrowRO;
PROCEDURE WideLO;(* $E- *)
BEGIN INLINE(
0C000H, 03000H, 00C00H, 00300H, 000C0H, 00030H, 0000CH, 00003H)
END WideLO;
PROCEDURE NarrowLO;(* $E- *)
BEGIN INLINE(
00C0CH, 00303H, 0C0C0H, 03030H)
END NarrowLO;
PROCEDURE Waager1;(* $E- *)
BEGIN INLINE(
0FFFFH, 00000H, 00000H, 00000H)
END Waager1;
PROCEDURE Waager2;(* $E- *)
BEGIN INLINE(
0FFFFH, 00000H)
END Waager2;
PROCEDURE Senkr1;(* $E- *)
BEGIN INLINE(
0C0C0H)
END Senkr1;
PROCEDURE Senkr2;(* $E- *)
BEGIN INLINE(
0CCCCH)
END Senkr2;
PROCEDURE LargeCross;(* $E- *)
BEGIN INLINE(
0C0C0H, 03300H, 00C00H, 03300H, 0C0C0H, 00033H, 0000CH, 00033H)
END LargeCross;
PROCEDURE SmallCross;(* $E- *)
BEGIN INLINE(
03030H, 0CCCCH, 00303H, 0CCCCH)
END SmallCross;
PROCEDURE Half;(* $E- *)
BEGIN INLINE(
0AAAAH, 05555H)
END Half;
PROCEDURE Quart;(* $E- *)
BEGIN INLINE(
0C0C0H, 00C0CH, 03030H, 00303H)
END Quart;
PROCEDURE Eight;(* $E- *)
BEGIN INLINE(
0C000H, 000C0H, 00C00H, 0000CH, 00300H, 00003H, 03000H, 00030H)
END Eight;
PROCEDURE Check;(* $E- *)
BEGIN INLINE(
0FF00H, 0FF00H, 0FF00H, 0FF00H, 000FFH, 000FFH, 000FFH, 000FFH)
END Check;
PROCEDURE MidCheck;(* $E- *)
BEGIN INLINE(
0F0F0H, 0F0F0H, 00F0FH, 00F0FH)
END MidCheck;
PROCEDURE DDot;(* $E- *)
BEGIN INLINE(
0007EH, 000FFH, 000FFH, 0007EH, 07E00H, 0FF00H, 0FF00H, 07E00H)
END DDot;
PROCEDURE SmallDot;(* $E- *)
BEGIN INLINE(
00000H, 01E00H, 03F00H, 01E00H, 00000H, 0001EH, 0003FH, 0001EH)
END SmallDot;
PROCEDURE Wave;(* $E- *)
BEGIN INLINE(
03C00H, 0C300H, 000C3H, 0003CH)
END Wave;
PROCEDURE DWave;(* $E- *)
BEGIN INLINE(
000C0H, 03CC0H, 0C300H, 00CC3H, 0303CH, 03000H, 00C00H, 00300H)
END DWave;
PROCEDURE Bricks;(* $E- *)
BEGIN INLINE(
0FFFCH, 0FFFCH, 0FFFCH, 00000H, 0F3FFH, 0F3FFH, 0F3FFH, 00000H)
END Bricks;
PROCEDURE Heights;(* $E- *)
BEGIN INLINE(
0,3,2,3,2,2,1,0,0,3,2,1,2,3,3,2,3,3,2,3,3)
END Heights;
VAR Patterns: ARRAY Pattern OF ADDRESS;
HighPtr : POINTER TO ARRAY Pattern OF INTEGER;
PROCEDURE SetPattern(rp: RastPortPtr; nr:Pattern);
BEGIN
WITH rp^ DO
areaPtrn:=Patterns[nr];
areaPtSz:=HighPtr^[nr];
END;
END SetPattern;
BEGIN
HighPtr:=ADR(Heights);
Patterns[full] := NIL;
Patterns[wideLD] :=ADR(WideRO);
Patterns[narrowLD] :=ADR(NarrowRO);
Patterns[wideRD] :=ADR(WideLO);
Patterns[narrowRD] :=ADR(NarrowLO);
Patterns[wideR] :=ADR(Waager1);
Patterns[narrowR] :=ADR(Waager2);
Patterns[wideD] :=ADR(Senkr1);
Patterns[narrowD] :=ADR(Senkr2);
Patterns[wideCross] :=ADR(LargeCross);
Patterns[narrowCross] :=ADR(SmallCross);
Patterns[half] :=ADR(Half);
Patterns[quart] :=ADR(Quart);
Patterns[eight] :=ADR(Eight);
Patterns[wideCheck] :=ADR(Check);
Patterns[narrowCheck] :=ADR(MidCheck);
Patterns[bigDot] :=ADR(DDot);
Patterns[smallDot] :=ADR(SmallDot);
Patterns[wave] :=ADR(Wave);
Patterns[crossWave] :=ADR(DWave);
Patterns[bricks] :=ADR(Bricks);
END HiPattern.mod